In recent years, there has been an exponential growth in the use of various on-line social network applications such as Facebook, Twitter, Flickr, YouTube and Blogger, for example. In general, social network applications are implemented using a computing platform that is capable of serving millions of users at a given time using thousands of clustered compute nodes (servers) located within data centers that reside in various geographical locations around the world. One primary consideration for data storage scaling of online social networks is the ability to optimally allocate user data in storage nodes within the data centers to thereby reduce access time and minimize the costs of storage and intra-cluster communication. With social network applications, users will access their own data, as well as interact with and access the data of other users. Accordingly, the scope of user interactions in social networks poses significant challenges to optimizing data allocation.